#!/bin/bash

# 测试段错误修复

echo "=== 段错误修复测试 ==="

# 进入modb目录
cd /home/apachee/trunk/Crystal/CrystalFlowAnalyzer/modb

# 设置环境变量
export PROJ_ROOT=/home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc

echo "环境变量 PROJ_ROOT 设置为: $PROJ_ROOT"

# 创建一个只包含前几个文件的小型测试列表，用于定位问题
cat > crash_test.list << 'EOF'
$PROJ_ROOT/design/usb2/src/usb2_DWC_usb3_params.v
$PROJ_ROOT/design/usb2/src/usb2_DWC_usb3_derived_params.v
$PROJ_ROOT/design/usb2/src/usb2_DWC_usb3_bcm_params.v
$PROJ_ROOT/design/usb2/src/usb2_DWC_usb3_internal_defines.v
$PROJ_ROOT/design/usb2/src/usb2_DWC_usb3.v
EOF

echo "创建小型测试文件列表完成"

# 测试处理小型文件列表
echo "处理小型文件列表以定位问题..."
timeout 30s ./moparse -f crash_test.list -o crash_test.modb

# 检查是否生成了modb文件
if [ -f "crash_test.modb" ]; then
    echo "✓ 成功生成modb文件"
    ls -la crash_test.modb
    
    # 显示文件信息
    echo "显示生成的modb文件信息:"
    ./moparse -s crash_test.modb
    
    # 清理生成的文件
    rm -f crash_test.modb
else
    echo "✗ 未能生成modb文件，可能存在段错误"
fi

# 清理测试文件
rm -f crash_test.list

echo "=== 段错误修复测试完成 ==="